package com.ismt.servletP3;

import java.util.List;

import javax.jdo.PersistenceManager;
import javax.jdo.annotations.IdGeneratorStrategy;
import javax.jdo.annotations.PersistenceCapable;
import javax.jdo.annotations.Persistent;
import javax.jdo.annotations.PrimaryKey;

import com.google.appengine.api.datastore.Blob;
import com.google.appengine.api.datastore.Key;

@PersistenceCapable
public class Imagem {

	@PrimaryKey
	@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
	Key id_imagem;
	
	@Persistent
	String nome_imagem;
	
	@Persistent
	Blob bytes_imagem;
	
	@Persistent
	String email_utilizador;
	
	@Persistent
	String nome_galeria;

	public String getNome_galeria() {
		return nome_galeria;
	}

	public void setNome_galeria(String nome_galeria) {
		this.nome_galeria = nome_galeria;
	}

	public Key getId_imagem() {
		return id_imagem;
	}

	public void setId_imagem(Key id_imagem) {
		this.id_imagem = id_imagem;
	}

	public String getNome_imagem() {
		return nome_imagem;
	}

	public void setNome_imagem(String nome_imagem) {
		this.nome_imagem = nome_imagem;
	}

	public Blob getBytes_imagem() {
		return bytes_imagem;
	}

	public void setBytes_imagem(byte[] bytes) {
		 bytes_imagem = new Blob(bytes);
	}

	public String getEmail_utilizador() {
		return email_utilizador;
	}

	public void setEmail_utilizador(String email_utilizador) {
		this.email_utilizador = email_utilizador;
	}
	
	public static String eliminar(Utilizador utilizadorAutenticado, String nome_imagem, String nome_galeria) {
		PersistenceManager pm = null;
		
		if(nome_galeria == null || nome_imagem == null) {
			return "-1";
		} else {
			try {
				pm = PMF.get().getPersistenceManager();
				
				String query = "SELECT from " + Imagem.class.getName()
					+ " where nome_imagem == '" + nome_imagem + "'"
					+ " & nome_galeria == '" + nome_galeria + "'"
					+ " & email_utilizador == '" + utilizadorAutenticado.email_utilizador + "'";
				
				@SuppressWarnings("unchecked")
				List<Imagem> listaImagens = (List<Imagem>) pm.newQuery(query).execute();
				
				if(listaImagens.size() > 0) {
					for(int i = 0; i < listaImagens.size(); i++) {
						pm.deletePersistent(listaImagens.get(i));
					}
				}
			} catch(Exception e) {
				System.out.println(e.getMessage());
				return "-2";
			} finally {
			    pm.close();
			}
			return "1";
		}
	}
	
	
	
}
